Unit Testing এর জন্য Mocha এবং Chai ব্যবহার

Computer Programming - নোড জেএস (Node.js) - Testing in Node.js (নোড.জেএস এ টেস্টিং)
188

Unit Testing হল সফটওয়্যার ডেভেলপমেন্টের একটি অপরিহার্য অংশ, যার মাধ্যমে একটি নির্দিষ্ট ফাংশন বা মডিউলের কার্যকারিতা পরীক্ষা করা হয়। এটি কোডের নির্ভুলতা এবং স্থিতিশীলতা নিশ্চিত করতে সাহায্য করে। Mocha এবং Chai হল দুটি জনপ্রিয় JavaScript টেস্টিং ফ্রেমওয়ার্ক যা Node.js এবং ব্রাউজার উভয়ের জন্য ব্যবহৃত হয়।

  • Mocha: একটি টেস্ট ফ্রেমওয়ার্ক যা asynchronous এবং synchronous টেস্টিং সাপোর্ট করে এবং কাস্টম টেস্ট রানার প্রদান করে।
  • Chai: একটি assertion library যা Mocha এর সাথে ব্যবহৃত হয়, এটি ডেটার যাচাই করার জন্য সহজ এবং বোধগম্য syntax প্রদান করে।

Mocha এবং Chai একসাথে ব্যবহার করে আপনি সহজেই unit testing করতে পারবেন। এখানে Mocha এবং Chai ব্যবহার করে unit testing করার প্রক্রিয়া তুলে ধরা হলো।


১. Mocha এবং Chai ইনস্টলেশন

প্রথমে, আপনাকে Mocha এবং Chai আপনার প্রজেক্টে ইনস্টল করতে হবে।

  1. প্রজেক্ট ডিরেক্টরিতে যান:

    mkdir my-test-project
    cd my-test-project
  2. npm ইনিশিয়ালাইজ করুন:

    npm init -y
  3. Mocha এবং Chai ইনস্টল করুন:

    npm install --save-dev mocha chai

এটি আপনার node_modules ফোল্ডারে Mocha এবং Chai ইনস্টল করবে এবং package.json ফাইলে ডিপেনডেন্সি হিসেবে যুক্ত করবে।


২. Mocha এবং Chai কনফিগারেশন

Mocha ব্যবহার করার জন্য, একটি টেস্ট স্ক্রিপ্ট যুক্ত করতে হবে আপনার package.json ফাইলে।

package.json ফাইলের "scripts" সেকশনে এই লাইনটি যোগ করুন:

"scripts": {
  "test": "mocha"
}

এটি Mocha টেস্ট রান করার জন্য একটি স্ক্রিপ্ট তৈরি করবে।


৩. Unit Test লিখা

এখন, একটি টেস্ট ফাইল তৈরি করুন এবং সেখানে Mocha ও Chai ব্যবহার করে টেস্ট লিখুন। ধরুন, আপনার কাছে একটি ফাংশন আছে যা দুটি সংখ্যার যোগফল দেয়।

add.js (ফাংশন ফাইল):

// add.js
function add(a, b) {
  return a + b;
}

module.exports = add;

এখন, আমরা add.js ফাইলের জন্য একটি unit test লিখব।

test/add.test.js (টেস্ট ফাইল):

// test/add.test.js
const assert = require('chai').assert;  // Chai assertion library
const add = require('../add');           // Add function import

describe('Add Function', () => {
  it('should return 5 when adding 2 and 3', () => {
    const result = add(2, 3);
    assert.equal(result, 5);  // Assertion: result should be 5
  });

  it('should return 0 when adding -1 and 1', () => {
    const result = add(-1, 1);
    assert.equal(result, 0);  // Assertion: result should be 0
  });
});

ব্যাখ্যা:

  • describe(): এটি একটি টেস্ট সুইট তৈরি করে। এখানে আমরা 'Add Function' এর মধ্যে সমস্ত টেস্ট লিখছি।
  • it(): এটি একটি টেস্ট কেস যা নির্দিষ্ট একটি ফিচারের আচরণ পরীক্ষা করে। এখানে আমরা add() ফাংশনকে বিভিন্ন ইনপুট দিয়ে পরীক্ষা করছি।
  • assert.equal(): Chai এর assertion মেথড যা বলে দেয় যে দুটি মান সমান কি না।

৪. টেস্ট রান করা

এখন, আপনার টেস্ট রান করতে, আপনি নীচের কমান্ডটি ব্যবহার করতে পারেন:

npm test

এটি Mocha চালাবে এবং আপনার টেস্টগুলো রান করবে। আপনি যদি উপরে উল্লেখিত ফাইলগুলো তৈরি করে থাকেন, তাহলে এর আউটপুট কিছুটা এরকম হবে:

  Add Function
    ✓ should return 5 when adding 2 and 3
    ✓ should return 0 when adding -1 and 1


  2 passing (10ms)

এখানে, চিহ্নটি নির্দেশ করছে যে টেস্টটি সফলভাবে পার হয়েছে।


৫. আরও Chai Assertions

Chai অনেক ধরনের assertion সমর্থন করে, যেমন:

  1. assert.equal(): দুটি মানের সমতা যাচাই করা।

    assert.equal(result, 5);
  2. assert.deepEqual(): দুটি অবজেক্টের সমতা যাচাই করা।

    assert.deepEqual(obj1, obj2);
  3. assert.isTrue(): কোনো এক্সপ্রেশন সত্য কিনা যাচাই করা।

    assert.isTrue(true);
  4. assert.isFalse(): কোনো এক্সপ্রেশন মিথ্যা কিনা যাচাই করা।

    assert.isFalse(false);
  5. assert.throw(): কোনো ফাংশন exception থ্রো করছে কি না তা যাচাই করা।

    assert.throw(() => { throw new Error('Test'); }, Error, 'Test');

৬. Mocha এর সাথে Asynchronous Testing

Asynchronous কোডের জন্য Mocha কিছু ফিচার প্রদান করে, যেমন done কলব্যাক বা **async/await**। উদাহরণস্বরূপ:

done কলব্যাক পদ্ধতি:

it('should return data after 2 seconds', (done) => {
  setTimeout(() => {
    assert.equal(2 + 3, 5);
    done();  // টেস্ট শেষে 'done' কল করুন
  }, 2000);
});

Async/Await পদ্ধতি:

it('should return data after 2 seconds', async () => {
  const result = await someAsyncFunction();
  assert.equal(result, 'expected result');
});

৭. Test Coverage

যখন আপনি unit testing করেন, তখন আপনি টেস্ট কভারেজও পরীক্ষা করতে পারেন। Test coverage টুল যেমন nyc ব্যবহার করা হয়।

Nyc ইনস্টলেশন:

npm install --save-dev nyc

package.json এ স্ক্রিপ্ট যোগ করুন:

"scripts": {
  "test": "nyc mocha"
}

এখন আপনি npm test চালিয়ে কোড কভারেজ দেখতে পাবেন।


সারাংশ

Mocha এবং Chai Node.js এ ইউনিট টেস্টিং করার জন্য জনপ্রিয় টুল। Mocha একটি টেস্ট ফ্রেমওয়ার্ক হিসেবে কাজ করে, যেখানে Chai assertion library দিয়ে সহজে ত্রুটি চেক এবং ফলাফল যাচাই করা যায়। Mocha এবং Chai এর সঠিক ব্যবহার আপনার কোডের কার্যকারিতা নিশ্চিত করতে এবং সিস্টেমের স্থিতিশীলতা বজায় রাখতে সাহায্য করবে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...